#afdf3b989339de478e85b614d274d1ef
from core.basic.skill import PassiveSkill, ActiveSkill
from core.basic.character import Character


# M-137格林机枪 M-137 개틀링건
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/01c3a2fb793d293a25ed8dc7a0d70c1a?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill1(ActiveSkill):
    name = "M-137格林机枪"
    learnLv = 5
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cd = 5
    mp = [10, 252]
    uuid = "01c3a2fb793d293a25ed8dc7a0d70c1a"

    data0 = [0, 145, 160, 174, 189, 204, 219, 233, 248, 263, 277, 292, 307, 322, 336, 351, 366, 380, 395, 410, 424, 439, 454, 469, 483, 498, 513, 527, 542, 557, 572, 586, 601, 616, 630, 645, 660, 675, 689, 704, 719, 733, 748, 763, 777, 792, 807, 822, 836, 851, 866, 880, 895, 910, 925, 939, 954, 969, 983, 998, 1013, 1028, 1042, 1057, 1072, 1086, 1101, 1116, 1131, 1145, 1160]# noqa: E501
    hit0 = 30



# 重火器拔击 뽑아치기
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/1dad88963abdc96b091fcab185a8820d?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill2(PassiveSkill):
    name = "重火器拔击"
    learnLv = 5
    masterLv = 1
    maxLv = 11
    position = 3 #TODO
    rangeLv = 3
    uuid = "1dad88963abdc96b091fcab185a8820d"

    data0 = [0, 394, 425, 455, 485, 515, 545, 575, 606, 636, 666, 697]# noqa: E501
    hit0 = 1 #TODO


# BBQ 바베~큐
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/8c2379737c5acc935c1731f67f607655?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill3(ActiveSkill):
    name = "BBQ"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cd = 8
    mp = [30, 322]
    uuid = "0969cd4054d93da07708108c0cc1c4b5"

    data0 = [0, 705, 777, 847, 919, 990, 1062, 1134, 1204, 1277, 1348, 1420, 1492, 1562, 1634, 1706, 1778, 1850, 1921, 1992, 2063, 2135, 2208, 2279, 2350, 2421, 2493, 2565, 2637, 2708, 2779, 2851, 2923, 2994, 3065, 3136, 3209, 3281, 3352, 3423, 3495, 3566, 3638, 3710, 3781, 3853, 3924, 3995, 4067, 4139, 4211, 4282, 4353, 4425, 4496, 4569, 4640, 4712, 4783, 4853, 4925, 4996, 5069, 5140, 5210, 5283, 5354, 5426, 5497, 5567, 5641]# noqa: E501
    hit0 = 12

# 浮空铲 고각도 슬라이딩
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/dcd536f1674630f01fc9667bb202b851?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill4(ActiveSkill):
    name = "浮空铲"
    learnLv = 10
    masterLv = 1
    maxLv = 1
    position = 7 #TODO
    rangeLv = 3
    cd = 8
    mp = [22, 22]
    uuid = "dcd536f1674630f01fc9667bb202b851"

    damage = False

# M-3喷火器 M-3 화염방사기
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/8f73f243041c2d27739fe7696f02bf9b?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill5(ActiveSkill):
    name = "M-3喷火器"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 7
    mp = [45, 392]
    uuid = "8f73f243041c2d27739fe7696f02bf9b"

    data2 = [0, 765, 842, 920, 998, 1076, 1154, 1231, 1309, 1389, 1464, 1542, 1620, 1697, 1777, 1853, 1931, 2009, 2084, 2164, 2242, 2317, 2395, 2472, 2552, 2630, 2706, 2785, 2865, 2941, 3019, 3094, 3172, 3252, 3329, 3407, 3485, 3562, 3641, 3720, 3796, 3873, 3951, 4029, 4107, 4182, 4260, 4342, 4417, 4495, 4571, 4648, 4728, 4804, 4882, 4959, 5039, 5117, 5194, 5272, 5350, 5426, 5505, 5581, 5659, 5738, 5816, 5894, 5972, 6049, 6129]# noqa: E501
    hit2 = 8


# 重火器精通 중화기 마스터리
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/ade01c1d6afc8a05055225045e89fe49?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill6(PassiveSkill):
    name = "重火器精通"
    learnLv = 15
    masterLv = 10
    maxLv = 20
    position = 1 #TODO
    rangeLv = 3
    uuid = "ade01c1d6afc8a05055225045e89fe49"


    data2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    data3 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]
    data4 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501

    associate = [
        {"type":"$*PAtkP","data":data2},
        {"data":data3},
        {"type":"*cdReduce","data":data4,"exceptSkills":['卫星射线', '毁灭射线', '裂核轨道炮']},
    ]


# 重火器奥义 중화기 다루기
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/e49e57b2e8fbeceb0a2c56a0c63fe6c5?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill7(PassiveSkill):
    name = "重火器奥义"
    learnLv = 15
    masterLv = 1
    maxLv = 1
    position = 0 #TODO
    rangeLv = 1
    uuid = "e49e57b2e8fbeceb0a2c56a0c63fe6c5"

    def effect(self, old, new):
        skills = []
        for i in self.char.skills:
            if i.type == "active" and i.learnLv not in [50,85,100] and i.damage and i.lv > 0:
                skills.append(i.name)
        self.associate = [{"type":"+lv","data":[0] + [1]*self.maxLv,"ratio":1,"skills":skills}]
        super().effect(old, new)


# G-14手雷 G-14 파열류탄
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/de3fea2d65c597f4d55c70a02b97fc79?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill8(ActiveSkill):
    name = "G-14手雷"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 9
    rangeLv = 2
    cd = 4
    mp = [20, 160]
    uuid = "de3fea2d65c597f4d55c70a02b97fc79"

    data1 = [0, 1936, 2134, 2329, 2526, 2723, 2921, 3116, 3313, 3511, 3706, 3903, 4099, 4296, 4491, 4689, 4884, 5083, 5280, 5476, 5673, 5868, 6066, 6261, 6458, 6654, 6851, 7047, 7244, 7443, 7638, 7835, 8031, 8228, 8424, 8621, 8816, 9013, 9211, 9406, 9603, 9801, 9998, 10193, 10390, 10588, 10783, 10980, 11176, 11373, 11569, 11766, 11965, 12160, 12357, 12553, 12750, 12946, 13143, 13338, 13535, 13731, 13928, 14124, 14323, 14520, 14715, 14912, 15108, 15305, 15501]# noqa: E501
    hit1 = 1 #TODO


# 反坦克炮 슈타이어 대전차포
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/0ed3148658fe37b3336ccb718dc0fdb0?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill9(ActiveSkill):
    name = "反坦克炮"
    learnLv = 20
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 6
    mp = [40, 391]
    uuid = "0ed3148658fe37b3336ccb718dc0fdb0"

    data0 = [0, 1499, 1652, 1802, 1957, 2110, 2263, 2411, 2564, 2717, 2870, 3023, 3176, 3325, 3478, 3631, 3783, 3936, 4087, 4238, 4391, 4544, 4697, 4848, 5001, 5154, 5309, 5457, 5608, 5761, 5913, 6067, 6219, 6370, 6521, 6676, 6829, 6980, 7128, 7283, 7436, 7589, 7742, 7893, 8046, 8197, 8350, 8502, 8653, 8806, 8959, 9110, 9263, 9415, 9568, 9721, 9874, 10028, 10175, 10328, 10481, 10632, 10787, 10938, 11089, 11242, 11395, 11546, 11698, 11851, 12002]# noqa: E501
    hit0 = 1 #TODO

    data1 = [0, 5999, 6611, 7218, 7827, 8435, 9044, 9654, 10263, 10872, 11482, 12089, 12699, 13308, 13916, 14525, 15133, 15745, 16354, 16963, 17571, 18182, 18790, 19397, 20007, 20616, 21226, 21835, 22440, 23050, 23659, 24266, 24878, 25485, 26093, 26704, 27311, 27923, 28529, 29138, 29748, 30355, 30967, 31578, 32184, 32795, 33402, 34012, 34622, 35229, 35839, 36446, 37057, 37667, 38274, 38882, 39493, 40101, 40712, 41319, 41925, 42532, 43144, 43753, 44362, 44970, 45577, 46189, 46798, 47406, 48015]# noqa: E501
    hit1 = 1 #TODO

# 加农炮 캐넌볼
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/8510294202d0e042dd29a2422fc6770d?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill10(ActiveSkill):
    name = "加农炮"
    learnLv = 20
    masterLv = 60
    maxLv = 70
    position = 1 #TODO
    rangeLv = 2
    cd = 5
    mp = [30, 280]
    uuid = "8510294202d0e042dd29a2422fc6770d"

    data0 = [0, 3235, 3565, 3893, 4225, 4554, 4881, 5211, 5539, 5867, 6197, 6523, 6853, 7179, 7509, 7835, 8167, 8493, 8823, 9151, 9479, 9809, 10137, 10465, 10793, 11121, 11451, 11779, 12109, 12436, 12767, 13093, 13425, 13753, 14081, 14409, 14739, 15067, 15395, 15722, 16053, 16381, 16708, 17036, 17364, 17695, 18023, 18352, 18678, 19008, 19338, 19666, 19992, 20322, 20650, 20981, 21306, 21636, 21964, 22294, 22619, 22952, 23280, 23610, 23938, 24266, 24594, 24924, 25252, 25580, 25908]# noqa: E501
    hit0 = 2



# 快速拔枪 패스티스트 건
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/45442bbbe33540b4deeec29437dae70c?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill12(PassiveSkill):
    name = "快速拔枪"
    learnLv = 25
    masterLv = 10
    maxLv = 20
    position = 8 #TODO
    rangeLv = 3
    uuid = "45442bbbe33540b4deeec29437dae70c"


# 激光炮 레이저 라이플
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/23a5e0fba03283cb1b324a847b3fe370?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill13(ActiveSkill):
    name = "激光炮"
    learnLv = 25
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 7
    mp = [61, 512]
    uuid = "23a5e0fba03283cb1b324a847b3fe370"

    data0 = [0, 7937, 8741, 9547, 10351, 11157, 11961, 12770, 13573, 14379, 15186, 15989, 16794, 17600, 18404, 19212, 20014, 20823, 21626, 22430, 23237, 24043, 24847, 25653, 26459, 27263, 28067, 28875, 29679, 30484, 31292, 32096, 32898, 33704, 34510, 35318, 36120, 36927, 37733, 38534, 39343, 40149, 40951, 41761, 42565, 43370, 44175, 44977, 45784, 46589, 47398, 48202, 49004, 49810, 50616, 51423, 52227, 53032, 53839, 54640, 55447, 56253, 57057, 57865, 58670, 59473, 60282, 61083, 61890, 62696, 63500]# noqa: E501
    hit0 = 1 #TODO



# 蓄电激光炮 충전 레이저 라이플
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/01384bbfc346775d1267fa0bc4ca605f?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill14(PassiveSkill):
    name = "蓄电激光炮"
    learnLv = 25
    masterLv = 1
    maxLv = 11
    line = 30
    position = 5 #TODO
    rangeLv = 2
    uuid = "01384bbfc346775d1267fa0bc4ca605f"

    data1 = [0, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]# noqa: E501

    associate = [{"data":data1,"skills":["激光炮"]}]


# 超动力补给包 오버부스트 팩
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/04c7b4361ca81f041e868169ff044252?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill15(PassiveSkill):
    name = "超动力补给包"
    learnLv = 25
    masterLv = 1
    maxLv = 11
    position = 2 #TODO
    rangeLv = 3
    uuid = "04c7b4361ca81f041e868169ff044252"

    data0 = [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]# noqa: E501

    associate = [{"data":data0}]


# 聚焦喷火器 화염 강타
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/04883563896fe1adac7505c6146b5f59?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill16(ActiveSkill):
    name = "聚焦喷火器"
    learnLv = 30
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 12
    mp = [130, 980]
    uuid = "04883563896fe1adac7505c6146b5f59"

    data1 = [0, 709, 782, 855, 927, 998, 1073, 1141, 1212, 1287, 1357, 1430, 1503, 1574, 1646, 1720, 1788, 1862, 1935, 2006, 2077, 2151, 2222, 2293, 2368, 2436, 2509, 2582, 2654, 2725, 2800, 2870, 2943, 3016, 3084, 3157, 3230, 3305, 3373, 3449, 3521, 3592, 3664, 3737, 3806, 3881, 3953, 4024, 4097, 4170, 4240, 4311, 4384, 4454, 4529, 4600, 4672, 4745, 4818, 4888, 4961, 5032, 5103, 5177, 5250, 5321, 5392, 5466, 5537, 5608, 5680]# noqa: E501
    hit1 = 29

# 潜能爆发 미라클 비전
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/1721e94897e9961d5c98130a13392f17?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill17(ActiveSkill):
    name = "潜能爆发"
    learnLv = 30
    masterLv = 10
    maxLv = 20
    position = 2 #TODO
    rangeLv = 3
    cd = 5
    mp = [357, 2765]
    uuid = "1721e94897e9961d5c98130a13392f17"

    damage = False

# FM-31榴弹发射器 FM-31 그레네이드 런처
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/762c4e6d030eaf0abbfe1fec2b298574?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill18(ActiveSkill):
    name = "FM-31榴弹发射器"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cd = 15
    mp = [50, 630]
    uuid = "762c4e6d030eaf0abbfe1fec2b298574"
    vps = [
          {
            "name": "集束榴弹",
            "desc": "施放时间减少",
            "explain": "[FM-31榴弹发射器]<br/>以更快速度发射更多榴弹<br/>- 榴弹发射次数 +3次<br/>- 发射间隔 -80%<br/>- 施放后僵直 -90%<br/>- 将被命中的敌人聚集到爆炸中心<br/><br/>总攻击力相同"
          },
          {
            "name": "跃空炮击",
            "desc": "赋予无敌状态",
            "explain": "[FM-31榴弹发射器]<br/>向后跳跃并发射榴弹<br/>- 跳跃过程中进入无敌状态<br/>- 榴弹发射次数 -1次<br/><br/>总攻击力相同"
          }
        ]

    data1 = [0, 6617, 7284, 7958, 8627, 9300, 9969, 10643, 11315, 11984, 12656, 13325, 13998, 14667, 15339, 16011, 16682, 17355, 18023, 18693, 19367, 20037, 20708, 21380, 22052, 22721, 23394, 24065, 24737, 25404, 26076, 26750, 27420, 28092, 28760, 29433, 30102, 30776, 31449, 32118, 32792, 33459, 34133, 34803, 35474, 36146, 36816, 37488, 38157, 38829, 39501, 40173, 40842, 41516, 42186, 42855, 43529, 44199, 44870, 45543, 46212, 46886, 47553, 48225, 48894, 49568, 50241, 50910, 51582, 52251, 52925]# noqa: E501
    hit1 = 3

# FM-92刺弹炮 FM-92 스팅어
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/38612d8f2561edc2eb68d5057a837bfa?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill19(ActiveSkill):
    name = "FM-92刺弹炮"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cube = 1
    cd = 20
    mp = [164, 1376]
    uuid = "38612d8f2561edc2eb68d5057a837bfa"
    vps = [
          {
            "name": "模式 : 追踪",
            "desc": "追踪<br/>取消僵直",
            "explain": "[FM-92刺弹炮]<br/>前方范围内存在敌人时， 发射爆炸1次的追踪导弹<br/>- 发射后， 可立即强制中断除觉醒技能之外的重火器系列技能<br/>- 寻敌范围 : 前方800px<br/><br/>总攻击力相同"
          },
          {
            "name": "模式 : 收割",
            "desc": "连续施放FM-92系列技能<br/>施放时间减少<br/>范围增加",
            "explain": "[FM-92刺弹炮]<br/>发射动作中， 连续发射FM-92系列技能<br/>目标技能<br/>- [FM-92刺弹炮]<br/>- [FM-92特殊刺弹炮]<br/><br/>删除蓄气操作并减少部分僵直<br/>- 施放前僵直 -25%<br/>- 炮弹落下时间 -50%<br/>- 爆炸范围 +40%<br/><br/>总攻击力相同"
          }
        ]

    data0 = [0, 4983, 5489, 5996, 6503, 7008, 7515, 8021, 8525, 9030, 9534, 10043, 10548, 11054, 11559, 12065, 12570, 13077, 13584, 14090, 14595, 15098, 15605, 16110, 16617, 17123, 17630, 18135, 18639, 19145, 19653, 20159, 20664, 21168, 21674, 22181, 22688, 23193, 23700, 24206, 24711, 25218, 25722, 26229, 26735, 27242, 27746, 28251, 28755, 29264, 29769, 30275, 30780, 31287, 31793, 32298, 32804, 33309, 33815, 34320, 34826, 35330, 35838, 36344, 36849, 37356, 37862, 38367, 38870, 39378, 39884]# noqa: E501
    hit0 = 5


# 光热反应 듀얼 트리거
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/33ad4930f4724a7d025c3046c6f6074b?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill20(PassiveSkill):
    name = "光热反应"
    learnLv = 35
    masterLv = 1
    maxLv = 1
    position = 2 #TODO
    rangeLv = 3
    uuid = "33ad4930f4724a7d025c3046c6f6074b"


# 量子爆弹 양자 폭탄
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/e4c354a89c337310aeb7041d5e742828?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill21(ActiveSkill):
    name = "量子爆弹"
    learnLv = 40
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cube = 1
    cd = 18
    mp = [164, 1376]
    uuid = "e4c354a89c337310aeb7041d5e742828"
    vps = [
          {
            "name": "弹雨骤袭",
            "desc": "施放时间减少<br/>追踪",
            "explain": "[量子爆弹]<br/>追踪前方范围内最近的敌人<br/>- 追加9枚导弹<br/><br/>施放重火器系列技能时可以同时使用该技能<br/>- 追击范围 : 前方800px<br/><br/>总攻击力相同"
          },
          {
            "name": "战略武器",
            "desc": "范围增加<br/>基础冷却时间增加",
            "explain": "[量子爆弹]<br/>删除碰撞攻击力， 合算至最后一击<br/>- 导弹大小 +100%<br/>- 爆炸范围 +50%<br/>- 基本冷却时间变更为36秒<br/>- 攻击力 +100%"
          }
        ]
        # TODO：变更伤害

    data0 = [0, 6162, 6785, 7413, 8036, 8663, 9285, 9912, 10535, 11163, 11787, 12414, 13040, 13661, 14289, 14912, 15540, 16163, 16790, 17415, 18039, 18663, 19290, 19914, 20541, 21165, 21786, 22415, 23042, 23666, 24291, 24915, 25542, 26165, 26790, 27416, 28041, 28668, 29292, 29918, 30542, 31167, 31791, 32418, 33042, 33669, 34295, 34916, 35544, 36167, 36795, 37418, 38045, 38667, 39294, 39917, 40545, 41169, 41796, 42420, 43043, 43670, 44294, 44919, 45546, 46170, 46797, 47420, 48045, 48671, 49296]# noqa: E501
    hit0 = 1 #TODO

    data1 = [0, 19514, 21492, 23472, 25452, 27432, 29412, 31391, 33371, 35351, 37326, 39308, 41286, 43268, 45246, 47228, 49208, 51185, 53166, 55145, 57125, 59103, 61085, 63062, 65042, 67025, 69003, 70983, 72962, 74943, 76920, 78900, 80880, 82859, 84839, 86820, 88799, 90779, 92759, 94739, 96717, 98697, 100677, 102654, 104636, 106614, 108597, 110574, 112556, 114536, 116513, 118494, 120473, 122453, 124431, 126414, 128393, 130371, 132351, 134331, 136310, 138290, 140271, 142248, 144228, 146208, 148190, 150168, 152148, 154124, 156107]# noqa: E501
    hit1 = 1 #TODO

    data4 = [0, 20, 20, 21, 24, 24, 27, 29, 30, 32, 35, 36, 38, 39, 39, 41, 45, 47, 48, 50, 53, 54, 56, 57, 57, 59, 63, 65, 66, 68, 69, 72, 74, 74, 75, 78, 81, 83, 84, 86, 87, 90, 92, 92, 95, 96, 98, 101, 102, 104, 105, 108, 108, 110, 113, 114, 116, 119, 120, 122, 123, 125, 125, 129, 131, 132, 134, 137, 138, 140, 141]# noqa: E501
    hit4 = 1 #TODO

    def vp_2(self):
        self.cd = 36
        self.skillRation *= 1 + 1


# X-1压缩量子炮 X-1 익스트루더
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/47bd4871f29defc2a0021ee9261d7a5b?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill22(ActiveSkill):
    name = "X-1压缩量子炮"
    learnLv = 45
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cube = 2
    cd = 45
    mp = [350, 2940]
    uuid = "47bd4871f29defc2a0021ee9261d7a5b"
    vps = [
          {
            "name": "弱点轰击",
            "desc": "施放时间减少<br/>所受伤害减少<br/>范围增加",
            "explain": "[X-1压缩量子炮]<br/>删除蓄气时间<br/><br/>蓄气中所受伤害 -75%<br/><br/>爆炸范围 +30%<br/><br/>总攻击力相同"
          },
          {
            "name": "星能聚爆",
            "desc": "施放时间减少<br/>强化聚集敌人效果",
            "explain": "[X-1压缩量子炮]<br/>变更为人造卫星支援形态<br/><br/>吸附范围 +30%<br/><br/>总攻击力相同"
          }
        ]

    data1 = [0, 57204, 63008, 68813, 74616, 80421, 86223, 92027, 97830, 103634, 109439, 115241, 121044, 126848, 132653, 138456, 144260, 150065, 155867, 161672, 167475, 173277, 179081, 184884, 190688, 196491, 202296, 208100, 213905, 219707, 225507, 231312, 237116, 242921, 248724, 254529, 260330, 266133, 271938, 277740, 283548, 289350, 295149, 300956, 306759, 312564, 318368, 324173, 329975, 335780, 341580, 347384, 353189, 358992, 364796, 370599, 376404, 382206, 388008, 393813, 399615, 405420, 411224, 417029, 422831, 428634, 434438, 440240, 446048, 451850, 457655]# noqa: E501
    hit1 = 1 #TODO


# 卫星定位 스펙트럴 서치 아이
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/6e33d47e6622ce03b6defdd912140270?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill23(PassiveSkill):
    name = "卫星定位"
    learnLv = 48
    masterLv = 40
    maxLv = 50
    position = 6 #TODO
    rangeLv = 3
    uuid = "6e33d47e6622ce03b6defdd912140270"

    data5 = [0, 9, 10.5, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24, 25.5, 27, 28.5, 30, 31.5, 33, 34.5, 36, 37.5, 39, 40.5, 42, 43.5, 45, 46.5, 48, 49.5, 51, 52.5, 54, 55.5, 57, 58.5, 60, 61.5, 63, 64.5, 66, 67.5, 69, 70.5, 72, 73.5, 75, 76.5, 78, 79.5, 81, 82.5]# noqa: E501

    associate = [{"data":data5}]


# 卫星射线 새틀라이트 빔
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/0232c151ef3731c2dede51931a374723?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill24(ActiveSkill):
    name = "卫星射线"
    learnLv = 50
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 5
    cube = 5
    cd = 145
    mp = [881, 5288]
    uuid = "0232c151ef3731c2dede51931a374723"

    data0 = [0, 6103, 7517, 8933, 10348, 11763, 13178, 14592, 16010, 17424, 18839, 20255, 21669, 23084, 24499, 25916, 27330, 28745, 30160, 31576, 32991, 34405, 35821, 37237, 38651, 40067, 41482, 42898, 44312, 45726, 47144, 48558, 49973, 51389, 52803, 54219, 55633, 57049, 58465, 59879, 61294, 62710, 64125, 65539, 66955, 68371, 69786, 71201, 72616, 74031, 75446]# noqa: E501
    data0 = [int(i * 1.1)if index > 9 else i for index, i in enumerate(data0)]
    hit0 = 1 #TODO

    data1 = [0, 2276, 2804, 3332, 3860, 4388, 4916, 5442, 5971, 6499, 7026, 7555, 8083, 8609, 9138, 9666, 10193, 10722, 11251, 11777, 12306, 12834, 13361, 13890, 14418, 14944, 15473, 16001, 16528, 17057, 17585, 18111, 18640, 19168, 19696, 20224, 20752, 21279, 21806, 22336, 22864, 23392, 23920, 24447, 24975, 25503, 26031, 26559, 27087, 27614, 28141]# noqa: E501
    data1 = [int(i * 1.1)if index > 9 else i for index, i in enumerate(data1)]
    hit1 = 42


# 等离子放射器 플라즈마 부스터
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/2a0a39184de92acf1c1375e00b77404c?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill25(ActiveSkill):
    name = "等离子放射器"
    learnLv = 60
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 2
    cube = 1
    cd = 30
    mp = [400, 1120]
    uuid = "2a0a39184de92acf1c1375e00b77404c"
    vps = [
          {
            "name": "激光安全放射",
            "desc": "施放时间减少<br/>所受伤害减少",
            "explain": "[等离子放射器]<br/>删除移动功能， 发射时后退<br/>- 攻击持续时间 -50%<br/>- 多段攻击间隔 -50%<br/><br/>施放过程中所受伤害 -70%"
          },
          {
            "name": "等离子卫星扫射",
            "desc": "施放时间减少<br/>范围增加",
            "explain": "[等离子放射器]<br/>变更为卫星支援形态<br/><br/>从坐标指定时开始朝着注视的方向慢慢扫描， 对范围内的敌人坐标进行等离子射击支援<br/>- 删除控制效果<br/>- 等离子射击次数 : 20次<br/><br/>总攻击力相同"
          }
        ]

    data1 = [0, 3902, 4298, 4692, 5087, 5483, 5880, 6275, 6672, 7068, 7464, 7860, 8253, 8651, 9045, 9441, 9837, 10235, 10629, 11025, 11423, 11816, 12213, 12609, 13005, 13401, 13794, 14192, 14588, 14984, 15378, 15776, 16170, 16566, 16964, 17358, 17756, 18150, 18545, 18942, 19337, 19733, 20129, 20526, 20921, 21318, 21714, 22109, 22505, 22898, 23295]# noqa: E501
    hit1 = 12



# FM-92 SW刺弹炮 FM-92 스팅어 SW
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/9dc8438e4572d39243c97da31c113acc?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill26(ActiveSkill):
    name = "FM-92 SW刺弹炮"
    learnLv = 70
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 2
    cube = 2
    cd = 50
    mp = [800, 1680]
    uuid = "9dc8438e4572d39243c97da31c113acc"
    vps = [
          {
            "name": "破空追猎炮",
            "desc": "施放时间减少<br/>可多次发动",
            "explain": "[FM-92特殊刺弹炮]<br/>变更刺弹运行方式<br/>- 只锁定单一目标<br/>- 刺弹数量 +2个<br/>- 刺弹飞行时间 -30%<br/><br/>变更为可填充2次的技能<br/>- 每次填充冷却时间 : 25秒<br/>- 每次填充攻击力 -50%"
          },
          {
            "name": "裂空爆炎炮",
            "desc": "初始化[FM-92刺弹炮]的冷却时间<br/>施放时间减少<br/>范围增加",
            "explain": "[FM-92特殊刺弹炮]<br/>变更为仅爆炸1次的刺弹<br/>- 追踪范围 +20%<br/>- 刺弹飞行时间 -30%<br/><br/>总攻击力相同<br/><br/>施放时， 初始化[FM-92刺弹炮]的冷却时间<br/>- [FM-92刺弹炮]攻击力 -29%"
          }
        ]

    data0 = [0, 21972, 24204, 26433, 28664, 30885, 33116, 35346, 37575, 39806, 42036, 44264, 46494, 48725, 50957, 53184, 55416, 57639, 59870, 62099, 64329, 66560, 68790, 71019, 73248, 75480, 77706, 79940, 82161, 84393, 86621, 88853, 91082, 93314, 95541, 97772, 100001, 102231, 104460, 106692, 108914, 111144, 113373, 115605, 117834, 120065, 122292, 124524, 126755, 128984, 131214]# noqa: E501
    hit0 = 4

    def vp_1(self):
        self.cd = 25
        self.skillRation *= 1 - 0.5

    def effect(self, old, new):
        if self.vp == 2:
            self.associate = [{"data":[0]+[-29]*self.maxLv,"skills":["FM-92刺弹炮"]}]
        return super().effect(old, new)

# 地脉震荡器 사이즈믹 웨이브
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/dac8d8207618150c162e4c6f9e168527?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill27(ActiveSkill):
    name = "地脉震荡器"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 2
    cube = 3
    cd = 40
    mp = [580, 4500]
    uuid = "dac8d8207618150c162e4c6f9e168527"
    vps = [
          {
            "name": "地脉毁灭者",
            "desc": "施放时间减少<br/>未命中时缩短冷却时间",
            "explain": "[地脉震荡器]<br/>删除部分攻击， 合算至最后一击<br/><br/>攻击失败时冷却时间缩短为5秒<br/><br/>总攻击力相同"
          },
          {
            "name": "地形改造波",
            "desc": "强化聚集敌人效果<br/>范围增加",
            "explain": "[地脉震荡器]<br/>删除除冲击波外的所有攻击<br/><br/>冲击波及聚集范围 +130%<br/><br/>总攻击力相同"
          }
        ]

    data0 = [0, 3395, 3741, 4085, 4430, 4774, 5119, 5463, 5810, 6152, 6496, 6841, 7185, 7530, 7874, 8219, 8564, 8909, 9253, 9598, 9942, 10287, 10632, 10975, 11320, 11664, 12009, 12353, 12699, 13043, 13388, 13733, 14077, 14421, 14766, 15111, 15456, 15800, 16143, 16489, 16832, 17177, 17522, 17867, 18211, 18556, 18899, 19245, 19590, 19935, 20279]# noqa: E501
    hit0 = 1 #TODO

    data1 = [0, 11885, 13093, 14297, 15504, 16710, 17916, 19122, 20327, 21534, 22740, 23945, 25151, 26358, 27564, 28770, 29977, 31182, 32388, 33593, 34800, 36006, 37211, 38416, 39623, 40828, 42034, 43242, 44446, 45653, 46857, 48065, 49270, 50476, 51682, 52889, 54094, 55300, 56508, 57712, 58919, 60124, 61331, 62536, 63742, 64947, 66153, 67358, 68566, 69770, 70977]# noqa: E501
    hit1 = 1 #TODO

    data2 = [0, 2547, 2805, 3065, 3321, 3580, 3840, 4096, 4356, 4615, 4871, 5131, 5388, 5648, 5906, 6164, 6424, 6680, 6940, 7199, 7456, 7715, 7973, 8232, 8490, 8747, 9007, 9265, 9524, 9783, 10040, 10299, 10558, 10816, 11074, 11332, 11592, 11849, 12108, 12366, 12624, 12883, 13142, 13400, 13658, 13917, 14175, 14434, 14692, 14951, 15209]# noqa: E501
    hit2 = 1 #TODO

    data3 = [0, 5942, 6546, 7149, 7751, 8355, 8958, 9561, 10164, 10766, 11370, 11974, 12575, 13178, 13783, 14385, 14988, 15591, 16194, 16797, 17400, 18003, 18606, 19207, 19811, 20413, 21016, 21620, 22222, 22825, 23429, 24031, 24635, 25238, 25840, 26443, 27048, 27650, 28252, 28854, 29459, 30062, 30663, 31268, 31871, 32473, 33076, 33680, 34282, 34886, 35487]# noqa: E501
    hit3 = 6

    data7 = [0, 31415, 34603, 37789, 40976, 44164, 47352, 50537, 53724, 56912, 60099, 63286, 66474, 69661, 72847, 76035, 79221, 82409, 85596, 88784, 91970, 95158, 98345, 101532, 104720, 107904, 111093, 114280, 117467, 120655, 123843, 127028, 130216, 133404, 136589, 139776, 142964, 146152, 149338, 152526, 155714, 158900, 162087, 165273, 168461, 171648, 174837, 178022, 181210, 184397, 187585]# noqa: E501
    hit7 = 1 #TODO


# 重火器改良 중화기 개조
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/f4a561e272cc434a4905b3aa0c0de090?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill28(PassiveSkill):
    name = "重火器改良"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 1 #TODO
    rangeLv = 3
    uuid = "f4a561e272cc434a4905b3aa0c0de090"

    data0 = [0, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123]# noqa: E501

    associate = [{"data":data0}]


# 中子爆弹 MSC-7
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/ef9d26746effee9199b54541f01b8752?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill29(ActiveSkill):
    name = "中子爆弹"
    learnLv = 80
    masterLv = 40
    maxLv = 50
    position = 2 #TODO
    rangeLv = 2
    cube = 5
    cd = 45
    mp = [824, 6180]
    uuid = "ef9d26746effee9199b54541f01b8752"
    vps = [
          {
            "name": "超新星爆炸",
            "desc": "施放时间减少<br/>范围增加",
            "explain": "[中子爆弹]<br/>删除部分攻击， 合算至最后一击<br/><br/>爆炸范围增加<br/><br/>技能施放后僵直减少<br/><br/>总攻击力相同"
          },
          {
            "name": "真空双重爆弹",
            "desc": "增加聚集敌人效果<br/>可多次发动",
            "explain": "[中子爆弹]<br/>变更为可填充2次的技能<br/>- 每次填充冷却时间 : 22.5秒<br/>- 每次填充攻击力 -50%<br/><br/>爆炸吸附敌人"
          }
        ]

    data0 = [0, 9003, 9916, 10827, 11741, 12656, 13568, 14483, 15396, 16308, 17221, 18136, 19048, 19961, 20873, 21787, 22701, 23616, 24528, 25441, 26354, 27267, 28180, 29094, 30007, 30923, 31834, 32747, 33663, 34574, 35487, 36401, 37313, 38226, 39143, 40054, 40967, 41881, 42793, 43707, 44620, 45533, 46448, 47361, 48273, 49187, 50101, 51013, 51927, 52840, 53754]# noqa: E501
    hit0 = 1 #TODO

    data1 = [0, 81024, 89243, 97463, 105682, 113903, 122122, 130342, 138561, 146782, 155001, 163221, 171439, 179660, 187879, 196099, 204317, 212539, 220757, 228979, 237199, 245419, 253637, 261857, 270077, 278297, 286516, 294736, 302956, 311176, 319395, 327615, 335836, 344055, 352275, 360495, 368714, 376933, 385153, 393372, 401594, 409813, 418033, 426252, 434473, 442692, 450912, 459132, 467352, 475571, 483791]# noqa: E501
    hit1 = 1 #TODO

    def vp_2(self):
        self.cd = 22.5
        self.skillRation *= 1 - 0.5


# 毁灭射线 버스터 빔
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/78b86e64fbb74c1db1b71c50a5ac21cd?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill30(ActiveSkill):
    name = "毁灭射线"
    learnLv = 85
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 5
    cube = 10
    cd = 180
    mp = [2500, 8000]
    uuid = "78b86e64fbb74c1db1b71c50a5ac21cd"

    data0 = [0, 9435, 11622, 13812, 15999, 18187, 20374, 22562, 24750, 26937, 29127, 31314, 33502, 35689, 37878, 40065, 42253, 44443, 46631, 48818, 51005, 53194, 55381, 57570, 59758, 61946, 64133, 66321, 68509, 70696, 72885, 75072, 77261, 79448, 81636, 83824, 86012, 88200, 90387, 92577, 94764, 96952, 99140, 101329, 103516, 105704, 107892, 110080, 112267, 114456, 116644]# noqa: E501
    hit0 = 10

    data2 = [0, 141530, 174349, 207170, 239989, 272807, 305625, 338445, 371263, 404083, 436902, 469720, 502539, 535358, 568178, 600997, 633815, 666634, 699452, 732273, 765092, 797909, 830728, 863548, 896367, 929186, 962004, 994824, 1027642, 1060462, 1093281, 1126099, 1158918, 1191737, 1224555, 1257376, 1290194, 1323013, 1355831, 1388652, 1421471, 1454288, 1487107, 1519927, 1552745, 1585564, 1618383, 1651203, 1684021, 1716840, 1749660]# noqa: E501
    hit2 = 1 #TODO


# 连锁卫星 인터록 새틀라이트
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/5f11bba71728448bb64de0dba2b252cf?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill31(PassiveSkill):
    name = "连锁卫星"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 3
    uuid = "5f11bba71728448bb64de0dba2b252cf"

    data0 = [0, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118]# noqa: E501

    associate = [{"data":data0}]


# MLDRS-95发射器 MLDRS-95
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/854997c3bdfc3a2b498b4c4001f69e06?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill32(ActiveSkill):
    name = "MLDRS-95发射器"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 7 #TODO
    rangeLv = 2
    cube = 7
    cd = 60
    mp = [773, 6000]
    uuid = "854997c3bdfc3a2b498b4c4001f69e06"

    data0 = [0, 2982, 3283, 3585, 3889, 4191, 4493, 4796, 5099, 5402, 5703, 6005, 6308, 6611, 6914, 7216, 7518, 7822, 8123, 8425, 8730, 9032, 9334, 9636, 9938, 10242, 10543, 10846, 11149, 11452, 11754, 12056, 12357, 12662, 12964, 13266, 13568, 13870, 14173, 14475, 14778, 15082, 15383, 15685, 15988, 16290, 16593, 16896, 17198, 17502, 17803]# noqa: E501
    hit0 = 15

    data2 = [0, 134176, 147789, 161401, 175013, 188627, 202240, 215851, 229464, 243077, 256688, 270300, 283912, 297525, 311137, 324749, 338362, 351975, 365586, 379199, 392812, 406422, 420035, 433648, 447261, 460872, 474484, 488097, 501710, 515321, 528933, 542545, 556157, 569770, 583382, 596995, 610607, 624219, 637833, 651446, 665056, 678669, 692282, 705893, 719506, 733119, 746731, 760343, 773955, 787568, 801180]# noqa: E501
    hit2 = 1 #TODO


# 裂核轨道炮 오비탈 디재스터
# https://api.neople.co.kr/df/skills/afdf3b989339de478e85b614d274d1ef/61c8cb33dd20b4ff335e8deed70d3d9c?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
class Skill33(ActiveSkill):
    name = "裂核轨道炮"
    learnLv = 100
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 5
    cube = 15
    cd = 290
    mp = [4027, 8054]
    uuid = "61c8cb33dd20b4ff335e8deed70d3d9c"

    data0 = [0, 12988, 16000, 19012, 22023, 25037, 28047, 31060, 34071, 37083, 40095, 43107, 46118, 49131, 52141, 55155, 58164, 61177, 64189, 67201, 70212, 73225, 76236, 79248, 82261, 85272, 88285, 91295, 94308, 97320, 100332, 103343, 106356, 109366, 112380, 115391, 118403, 121415, 124426, 127437, 130451, 133462, 136474, 139486, 142497, 145511, 148522, 151534, 154546, 157558, 160567]# noqa: E501
    hit0 = 5

    data2 = [0, 259771, 320008, 380246, 440482, 500720, 560957, 621192, 681431, 741666, 801906, 862141, 922380, 982616, 1042853, 1103091, 1163327, 1223563, 1283801, 1344039, 1404275, 1464513, 1524749, 1584986, 1645223, 1705461, 1765697, 1825934, 1886172, 1946408, 2006647, 2066883, 2127118, 2187358, 2247593, 2307831, 2368068, 2428305, 2488541, 2548780, 2609016, 2669252, 2729490, 2789727, 2849963, 2910202, 2970438, 3030674, 3090912, 3151149, 3211385]# noqa: E501
    hit2 = 1 #TODO

    data3 = [0, 32472, 40000, 47529, 55060, 62588, 70119, 77648, 85178, 92709, 100236, 107768, 115297, 122828, 130357, 137885, 145416, 152944, 160475, 168004, 175533, 183063, 190592, 198123, 205652, 213181, 220711, 228241, 235771, 243300, 250832, 258359, 265889, 273420, 280950, 288479, 296007, 303537, 311067, 318597, 326127, 333655, 341186, 348715, 356245, 363775, 371304, 378834, 386364, 393894, 401422]# noqa: E501
    hit3 = 10

class classChange(Character):
    def __init__(self, equVersion):
        self.name = 'launcher_male'
        self.nameCN = '重霄·枪炮师'
        self.role = 'gunner_male'

        self.武器选项 = ['手弩', '步枪','左轮枪','自动手枪','手炮']
        self.输出类型选项 = ['物理百分比']
        self.输出类型 = '物理百分比'
        self.防具精通属性 = ['力量']
        self.防具类型 = '重甲'
        self.buff = 2.023

        self.角色 = '神枪手(男)'

        self.职业 = '枪炮师'

        super().__init__(equVersion, __name__)
